모의해킹
피버팅과터널링_03_터널링과포트포워딩원리
작성자 : Heehyeon Yoo|2025-12-17
# 모의해킹# PNT# Tunneling# PortForwarding# SSH
1. 터널링(Tunneling)의 원리
피버팅이 "이동(Action)"이라면, 터널링은 그 이동을 가능하게 하는 "기술(Technique)"이자 "수단"이다.
1.1 개념 및 정의
- 정의: 한 네트워크 프로토콜의 패킷을 다른 네트워크 프로토콜의 데이터(Payload)영역에 넣어 캡슐화(Encapsulation)하여 전송하는 기술.
- 비유: 벽(방화벽)으로 막힌 방 사이에 비밀 통로(Tunnel)를 뚫는 것. 외부에서는 통로의 존재만 보이고, 그 안으로 무엇이 지나가는지는 보이지 않는다.
1.2 필요성(방화벽 우회)
- 상황: IT망에서 PCI망으로
HTTP(80)통신을 하고 싶으나, 방화벽이SSH(22)만 허용하고 나머지는 차단(Drop)하는 경우. - 해결:
- 공격자는 SSH 터널을 생성한다.
- 보내고자 하는
HTTP패킷을SSH패킷 안에 숨긴다(Encapsulation). - 방화벽은 이를 정상적인
SSH트래픽으로 인식하여 통과시킨다. - 수신측(Pivot Host)에서
SSH포장을 뜯고 내부의HTTP패킷을 꺼내 목적지로 전달한다.
2. 포트 포워딩(Port Forwarding)
터널링을 구현하는 가장 대표적인 기술이 바로 포트 포워딩이다.
- 정의: 특정 호스트의 포트로 들어오는 트래픽을, 다른 호스트(또는 같은 호스트)의 특정 포트로 전달(Forwarding)해주는 기술.
- 구성 요소:
- 시작 호스트 (Start Host): 공격자(Client). 트래픽을 보내는 주체.
- 피벗 호스트 (Pivot Host): 경유지(Middlebox). 두 네트워크를 연결.
- 대상 호스트 (Target Host): 최종 목적지(Server).
2.1 작동 흐름
- 공격자가 자신의 로컬 포트(예: 1234)에 트래픽을 보낸다.
- 이 트래픽은 피벗 호스트와의 연결(터널)을 타고 건너간다.
- 피벗 호스트는 도착한 트래픽을 대상 호스트의 실제 포트(예: 80, 3389)로 전달한다.
- 결과적으로 공격자는 로컬 포트(1234)를 통해 원격지의 대상 포트(80)와 직접 통신하는 효과를 얻는다.
3. 포트 포워딩의 종류(기준)
포트 포워딩은 기준에 따라 크게 두 가지로 나뉜다. (상세 기술 및 실습은 후속 강의에서 다룸).
3.1 로컬(Local) vs 리모트(Remote)
기준: "누가(Client) 시작점인가?"
- Local Port Forwarding:
- 내(Client) 로컬 포트로 들어오는 트래픽을 원격지로 보낸다.
- 공격자가 내부망의 서비스(RDP, Web)를 내 컴퓨터에서 접속하고 싶을 때 사용.
- Remote Port Forwarding:
- 원격지(Server/Pivot) 포트로 들어오는 트래픽을 내(Client) 쪽으로 가져온다.
- 내부망의 쉘(Reverse Shell)을 내 공격 서버로 연결하거나, 외부에서 내부망 서버를 공개할 때 사용.
3.2 포워드(Forward) vs 리버스(Reverse)
- 대부분
Forward는 생략하며, 방향성에 따라 구분한다. 리버스 쉘과 유사하게 연결의 방향이 역방향(Outbound)일 때 리버스라 부른다.
4. 포트 포워딩을 "꼭" 써야 하는 이유 (Why?)
단순히 RDP나 SSH로 접속해서 공격 툴을 업로드하고 실행하면 편하지 않나? 왜 복잡하게 포트 포워딩을 하는가?
4.1 작전 보안(OpsSec: Operations Security)
- 파일 업로드 최소화: 타겟 호스트에 공격 도구(Tool)를 업로드하면 증거(Artifact)가 남고, AV/EDR 솔루션에 탐지될 확률이 매우 높다.
- 인메모리(In-Memory) 공격: 포트 포워딩을 통해 네트워크 레벨에서 통신만 중계하면, 타겟 디스크에 파일을 쓰지 않고도(Fileless) 공격이 가능하다.
4.2 가용성(Availability)
- 시스템 보호: 점프 호스트가 매우 중요한 서버(예: Domain Controller)일 수 있다. 여기에 불안정한 공격 도구를 올렸다가 충돌(Crash)이 발생하거나, EDR에 의해 격리(Isolation)되면 심각한 장애를 초래한다.
- 안전한 중계: 포트 포워딩은 OS가 기본 제공하거나(SSH), 매우 가벼운 에이전트만 사용하므로 시스템 부하가 적고 안정적이다.